Personalized media streams

ABSTRACT

A method for providing a personalized media stream includes receiving a signal from a user to launch a personalized media stream, determining a current time, identifying a first time slot of a schedule into which the current time falls, identifying a first channel that is associated with the first time slot, wherein viewing history for the user indicates that the user has viewed the first channel during the first time slot in the past, automatically tuning the display device to the first channel in response to the signal, receiving, subsequent to the automatically tuning, a command from the user to pause a program playing on the first channel, identifying a second channel associated with a second time slot, wherein the second time slot occurs later in time that the first time slot, and buffering a portion of a program being shown on the second channel during the second time slot.

This application is a continuation of U.S. patent application Ser. No.17/081,978, filed on Oct. 27, 2020, now U.S. Pat. No. 11,558,670, whichis herein incorporated by reference in its entirety.

The present disclosure relates generally to digital media distribution,and relates more particularly to devices, non-transitorycomputer-readable media, and methods for providing media streams in theform of television channels that are personalized for specific users.

BACKGROUND

Television service providers, including providers of cable televisionservices, satellite television services, fiber optic televisionservices, digital streaming television services, and the like, may offerhundreds of different channels that can be accessed by subscribers. Forinstance, subscribers may subscribe to specific packages that allowaccess to all or a subset of the available channels. These specificpackages may include a base package (e.g., including network televisionand/or basic cable channels), a package that includes one or morepremium movie channels, a package that includes one or more premiumsports channels, and/or other types of packages.

SUMMARY

In one example, a method for providing a personalized media stream isperformed by a processing system including at least one processor. Themethod includes receiving a signal from a user via an input deviceindicating that the user wishes to launch a personalized media stream ona display device of the user, determining a current time, identifying afirst time slot of a schedule into which the current time falls, whereinthe schedule comprises a plurality of time slots including the firsttime slot, identifying a first channel that is associated in theschedule with the first time slot, wherein the first channel is one of aplurality of channels, and wherein viewing history data for the userindicates that the user has viewed the first channel during the firsttime slot in the past, automatically tuning the display device of theuser to the first channel in response to the signal, receiving,subsequent to the automatically tuning, a command from the user via theinput device to pause a program playing on the first channel,identifying a second channel associated in the schedule with a secondtime slot of the plurality of time slots, wherein the second time slotoccurs later in time that the first time slot, and buffering a portionof a program being shown on the second channel during the second timeslot, when the second time slot begins, wherein the buffering beginswhile the display device is still tuned to the first channel.

In another example, a device includes a processing system including atleast one processor and a computer-readable medium storing instructionswhich, when executed by the processing system, cause the processingsystem to perform operations. The operations include receiving a signalfrom a user via an input device indicating that the user wishes tolaunch a personalized media stream on a display device of the user,determining a current time, identifying a first time slot of a scheduleinto which the current time falls, wherein the schedule comprises aplurality of time slots including the first time slot, identifying afirst channel that is associated in the schedule with the first timeslot, wherein the first channel is one of a plurality of channels, andwherein viewing history data for the user indicates that the user hasviewed the first channel during the first time slot in the past,automatically tuning the display device of the user to the first channelin response to the signal, receiving, subsequent to the automaticallytuning, a command from the user via the input device to pause a programplaying on the first channel, identifying a second channel associated inthe schedule with a second time slot of the plurality of time slots,wherein the second time slot occurs later in time that the first timeslot, and buffering a portion of a program being shown on the secondchannel during the second time slot, when the second time slot begins,wherein the buffering begins while the display device is still tuned tothe first channel.

In another example, a computer-readable medium stores instructionswhich, when executed by a processing system including at least oneprocessor, cause the processing system to perform operations. Theoperations include receiving a signal from a user via an input deviceindicating that the user wishes to launch a personalized media stream ona display device of the user, determining a current time, identifying afirst time slot of a schedule into which the current time falls, whereinthe schedule comprises a plurality of time slots including the firsttime slot, identifying a first channel that is associated in theschedule with the first time slot, wherein the first channel is one of aplurality of channels, and wherein viewing history data for the userindicates that the user has viewed the first channel during the firsttime slot in the past, automatically tuning the display device of theuser to the first channel in response to the signal, receiving,subsequent to the automatically tuning, a command from the user via theinput device to pause a program playing on the first channel,identifying a second channel associated in the schedule with a secondtime slot of the plurality of time slots, wherein the second time slotoccurs later in time that the first time slot, and buffering a portionof a program being shown on the second channel during the second timeslot, when the second time slot begins, wherein the buffering beginswhile the display device is still tuned to the first channel.

BRIEF DESCRIPTION OF THE DRAWINGS

The teachings of the present disclosure can be readily understood byconsidering the following detailed description in conjunction with theaccompanying drawings, in which:

FIG. 1 illustrates an example network related to the present disclosure;

FIG. 2 illustrates a flowchart of an example method for constructing auser-specific schedule for use in providing a channel that ispersonalized for a user;

FIG. 3 illustrates a portion of an example user-specific schedule thatmay be created for an example user;

FIG. 4 illustrates a flowchart of an example method for providing achannel that is personalized for a user; and

FIG. 5 depicts a high-level block diagram of a computing devicespecifically programmed to perform the functions described herein.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures.

DETAILED DESCRIPTION

In one example, the present disclosure provides media streams in theform of television channels that are personalized for specific users. Asdiscussed above, television service providers, including providers ofcable television services, satellite television services, fiber optictelevision services, digital streaming television services, and thelike, may offer hundreds of different channels that can be accessed bysubscribers. Despite access to hundreds of channels, however, asubscriber may in reality watch only a small subset (e.g., a dozen orless) of these channels on a regular basis. Moreover, the subscriber mayregularly watch specific channels at specific times of day. Forinstance, the subscriber may regularly watch a specific cable newschannel from 7:00 AM to 8:00 AM on weekdays, a specific premium moviechannel from 9:00 PM to 11:00 PM on weekdays, and a specific cablesports channel on Sundays from 1:00 PM to 7:00 PM. To switch from oneprogram or one channel to another, the subscriber must typicallymanually tune the channel (e.g., by entering the number of the newchannel via a remote control or making a selection via a graphical userinterface (GUI) that displays a channel guide).

Examples of the present disclosure provide television channels that arepersonalized for specific users or subscribers. In one example, a user'stelevision viewing habits are observed to detect patterns, e.g., todetermine which channels the user watches most often and when the usertends to watch these channels (e.g., specific days of the week and/orspecific times). These patterns may serve as the basis for auser-specific schedule, where the user-specific schedule indicates atleast one time window and a channel associated with that time window.For instance, if the user is observed to watch a specific cable newschannel from 7:00 AM to 8:00 AM on weekdays, then the user-specificschedule may indicate a time window of 7:00 AM to 8:00 AM, on Mondaysthrough Fridays, where the associated channel is the specific cable newschannel.

Once the user-specific schedule is constructed, the user may launch apersonalized channel on his or her television (or other devices that arecapable of receiving and displaying television content). For instance, aspecific channel (e.g., channel 1000) may be dedicated to servingpersonalized channels, or a menu on a graphical user interface mayprovide the user with an option to launch the personalized channel,similar to a video on demand (VOD) feature. When the user launches thepersonalized channel, the personalized channel will automatically (i.e.,without further action or input from the user) tune to the channel thatis indicated in the user's user-specific schedule for the current timewindow. Thus, for instance, if the user launches the personalizedchannel at 7:05 AM on a Wednesday, and the user-specific scheduleassociates a specific cable news channel with the time window of 7:00 AMto 8:00 AM on weekdays, the personalized channel may automatically tunethe user's television to the specific cable news channel, such that thetelevision displays the current program on the specific cable newschannel.

Thus, in one example, multiple channels may be distributed as multiplemanifests of a playlist. In a further example, an artificiallyintelligent agent in a network (e.g., on the server side of the network)may intelligently construct the individualized playlist and deliver theindividualized playlist to the playback device (e.g., a user endpointdevice). The playback device may subsequently present the playlist as amedia stream, such that each item in the playlist appears to be comingfrom a single source or channel.

Within the context of the present disclosure, the term “channel” isunderstood to refer to a television channel, i.e., a terrestrialfrequency or virtual number over which a television station ortelevision network is distributed. For instance, a digital terrestrialtelevision channel may correspond to a specific band of carrierfrequencies, such that a device that is tuned to a carrier frequencywithin that specific band will receive content associated with thedigital terrestrial television channel. Similarly, a satellitetelevision channel may correspond to a specific satellite transponder,such that a device that is tuned to the specific transponder willreceive content associated with the satellite television channel.

To better understand the present disclosure, FIG. 1 illustrates anexample network 100 related to the present disclosure. As shown in FIG.1 , the network 100 may comprise a content distribution network (e.g.,data network) that connects mobile devices 157A, 157B, 167A and 167B,and devices such as set-top boxes (STBs) 162A, and 162B, television (TV)163A and TV 163B, router 165, personal computer (PC) 166, and so forth,with one another and with various other devices via a core network 110,a wireless access network 150 (e.g., a cellular network), an accessnetwork 120, other networks 140 and/or the Internet 145. Mobile devices157A, 157B, 167A and 167B, and devices such as set-top boxes (STBs)162A, and 162B, television (TV) 163A and TV 163B, router 165, andpersonal computer (PC) 166 may also be referred to herein as “customerdevices” or “user endpoint devices.”

In one example, wireless access network 150 comprises a radio accessnetwork implementing such technologies as: global system for mobilecommunication (GSM), e.g., a base station subsystem (BSS), or IS-95, auniversal mobile telecommunications system (UMTS) network employingwideband code division multiple access (WCDMA), or a CDMA3000 network,among others. In other words, wireless access network 150 may comprisean access network in accordance with any “second generation” (2G),“third generation” (3G), “fourth generation” (4G), Long Term Evolution(LTE) or any other yet to be developed future wireless/cellular networktechnology including “fifth generation” (5G) and further generations.While the present disclosure is not limited to any particular type ofwireless access network, in the illustrative example, wireless accessnetwork 150 is shown as a UMTS terrestrial radio access network (UTRAN)subsystem. Thus, elements 152 and 153 may each comprise a Node B orevolved Node B (eNodeB).

In one example, each of the mobile devices 157A, 157B, 167A, and 167Bmay comprise any subscriber/customer endpoint device configured forwireless communication such as a laptop computer, a Wi-Fi device, aPersonal Digital Assistant (PDA), a mobile phone, a smartphone, an emaildevice, a computing tablet, a messaging device, a global positioningsystem (GPS), a portable gaming device, a wearable smart device (e.g., asmart watch or a fitness tracker), a satellite radio receiver orsatellite television receiver, or any other device having a userinterface that is capable of receiving bandwidth from the network 100 inthe form of streaming data. In one example, any one or more of mobiledevices 157A, 157B, 167A, and 167B may have both cellular andnon-cellular access capabilities and may further have wiredcommunication and networking capabilities. Any one or more of mobiledevices 157A, 157B, 167A, and 167B may have installed thereon atelevision content distribution application that allows the user of themobile device to access digital television content such as televisionshows, movies, video on demand programs, and the like from his or hertelevision content provider (e.g., a cable television service provider,a satellite television service provider, etc.).

As illustrated in FIG. 1 , network 100 includes a core network 110. Inone example, core network 110 may combine core network components of acellular network with components of a triple play service network; wheretriple play services include telephone services, Internet services andtelevision services to subscribers. For example, core network 110 mayfunctionally comprise a fixed mobile convergence (FMC) network, e.g., anIP Multimedia Subsystem (IMS) network. In addition, core network 110 mayfunctionally comprise a telephony network, e.g., an InternetProtocol/Multi-Protocol Label Switching (IP/MPLS) backbone networkutilizing Session Initiation Protocol (SIP) for circuit-switched andVoice over Internet Protocol (VoIP) telephony services.

Core network 110 may also further comprise a broadcast televisionnetwork, e.g., a traditional cable provider network or an InternetProtocol Television (IPTV) network, as well as an Internet ServiceProvider (ISP) network. The network elements 111A-111D may serve asgateway servers or edge routers to interconnect the core network 110with other networks 140, Internet 145, wireless access network 150,access network 120, and so forth. As shown in FIG. 1 , core network 110may also include a plurality of television (TV) servers 112, a pluralityof content servers 113, a plurality of application servers 114, anadvertising server (AS) 117, a scheduling server 115, and a scheduledatabase (DB) 116. For ease of illustration, various additional elementsof core network 110 are omitted from FIG. 1 .

With respect to television service provider functions, core network 110may include one or more third party television (TV) servers 112 for thedelivery of television content. In this regard, television servers 112may interact with content servers 113 and advertising server 117 toselect which video programs, or other content and advertisements toprovide to the home network 160, to the mobile devices 157A, 157B, 167A,and 167B, and to other downstream viewing locations.

In one example, content servers 113 may store scheduled televisioncontent for a number of third party television content providers,video-on-demand programming, local programming content, and so forth.For example, third party television content providers may upload variouscontents to the core network to be distributed to various subscribers.Alternatively, or in addition, third party television content providersmay stream various contents to the core network for distribution tovarious subscribers, e.g., for live content, such as news programming,sporting events, and the like. In one example, advertising server 117stores a number of advertisements that can be selected for presentationto viewers, e.g., in the home network 160, via the mobile devices 157A,157B, 167A, and 167B, and at other downstream viewing locations. Forexample, advertisers may upload various advertising content to the corenetwork 110 to be distributed to various viewers.

The scheduling server 115 performs operations, discussed in greaterdetail below in connection with FIG. 2 , related to presentingtelevision channels that are personalized for specific users. Forexample, the scheduling server 115 may monitor a user's viewing habits(e.g., channels and/or programs viewed) in order to detect viewingpatterns that are specific to the user. For instance, as discussedabove, the scheduling server 115 may detect that the user regularlywatches a specific cable news channel from 7:00 AM to 8:00 AM onweekdays, a specific premium movie channel from 9:00 PM to 11:00 PM onweekdays, and a specific cable sports channel on Sundays from 1:00 PM to7:00 PM. From these viewing patterns, the scheduling server 115 mayconstruct a user-specific schedule for the user, where the user-specificschedule indicates at least one time window and a channel associatedwith that time window. For instance, if the user is observed to watch aspecific cable news channel from 7:00 AM to 8:00 AM on weekdays, thenthe user-specific schedule may indicate a time window of 7:00 AM to 8:00AM, on Mondays through Fridays, where the associated channel is thespecific cable news channel.

The scheduling server 115 may store the user-specific schedule in theschedule DB 116, where the schedule DB 116 may store a plurality ofuser-specific schedules for a plurality of different users orsubscribers of television service provider. The user-specific schedulesstored in the schedule DB 116 may be indexed by one or moreuser-specific identifiers (e.g., name, account number, or some othersort of unique identifier) that makes it easy to identify theuser-specific schedule associated with any given user of the pluralityof different users. The user-specific schedules may be stored inencrypted form to protect the privacy of the users. The schedulingserver 115 may also store a copy of the user-specific schedule on one ofmore of the user's devices that is capable of receiving and displayingtelevision content (e.g., one of mobile devices 157A, 157B, 167A, and167B; STBs 162A and 162B; TVs 163A and 163B; router 165; or PC 166).

In one example, any or all of the television servers 112, contentservers 113, application servers 114, scheduling server 115, andadvertising server 117 may comprise a computing system, such ascomputing system 500 depicted in FIG. 5 .

In one example, the access network 120 may comprise a Digital SubscriberLine (DSL) network, a Local Area Network (LAN), a cellular or wirelessaccess network, a 3^(rd) party network, and the like. In this regard,access network 120 may include a node 122, e.g., a mini-fiber node(MFN), a video-ready access device (VRAD) or the like. However, inanother example node 122 may be omitted, e.g., for fiber-to-the-premises(FTTP) installations. Access network 120 may also transmit and receivecommunications between home network 160 and core network 110 relating tocommunications with web servers via the Internet 145 and/or othernetworks 140, and so forth.

In one example, home network 160 may include a router 165, whichreceives data/communications associated with different types of media,e.g., television, phone, and Internet, and separates thesecommunications for the appropriate devices. The data/communications maybe received via access network 120, for instance. In one example,television data files are forwarded to set-top boxes (STBs)/digitalvideo recorders (DVRs) 162A and 162B to be decoded, recorded, and/orforwarded to television (TV) 163A and TV 163B for presentation.Similarly, Internet communications are sent to and received from router165, which may be capable of both wired and/or wireless communication.In turn, router 165 receives data from and sends data to the appropriatedevices, e.g., personal computer (PC) 166, mobile devices 167A, and167B, and so forth. Each of these devices may be configured to supportmedia content of particular file formats. In one example, router 165 mayfurther communicate with TV (broadly a display) 163A and/or 163B, e.g.,where one or both of the televisions is a smart TV. TVs 163A and/or 163Bmay also be configured to support media content of particular fileformats. In one example, router 165 may comprise a wired Ethernet routerand/or an Institute for Electrical and Electronics Engineers (IEEE)802.11 (Wi-Fi) router, and may communicate with respective devices inhome network 160 via wired and/or wireless connections.

One or more of the mobile devices 157A, 157B, 167A, and 167B; STBs 162Aand 162B; TVs 163A and 163B; router 165; or PC 166 may be capable ofreceiving and/or displaying television content, e.g., as delivered bythe TV server 112. For instance, one or more of the mobile devices 157A,157B, 167A, and 167B or PC 166 may execute an application associatedwith a television service provider. The application may allow a user toaccess a subscriber account associated with the television serviceprovider via the mobile device(s), so that the user may watch televisionprogramming on the mobile device(s). STBs 162A and 162B or router 165may receive signals from the TV servers 112 and extract televisionprogramming from the signals for display on the TVs 163A and 163B.Alternatively, if one of the TVs 163A and 163B is a smart television,the TV(s) may be able to directly receive the signals from the TVservers 112 and extract the television programming.

Furthermore, one or more of the mobile devices 157A, 157B, 167A, and167B; STBs 162A and 162B; TVs 163A and 163B; router 165; or PC 166 maystore a user-specific schedule for a user, as constructed by thescheduling server 115 as discussed above. Thus, one or more of themobile devices 157A, 157B, 167A, and 167B; STBs 162A and 162B; TVs 163Aand 163B; router 165; or PC 166 may receive a signal from a userindicating that the user wishes to view a personalized channel andidentify, based on the user-specific schedule, a channel that isassociated with the current time. For instance, as discussed above, theviewer-specific schedule may associate different channels with differenttime slots. The one or more of the mobile devices 157A, 157B, 167A, and167B; STBs 162A and 162B; TVs 163A and 163B; router 165; or PC 166 mayidentify the time slot into which the current time falls (e.g., acurrent time of 7:05 AM may fall into the time slot of 7:00 AM to 8:00AM), and may then identify the channel that is associated with the timeslot. The one or more of the mobile devices 157A, 157B, 167A, and 167B;STBs 162A and 162B; TVs 163A and 163B; router 165; or PC 166 may thenautomatically tune to the channel that is associated with time slot intowhich the current time falls. The automatic tuning may be repeated untilthe user turns off or otherwise terminates the personalized channel.Thus, as long as the personalized channel is activated or enabled, theone or more of the mobile devices 157A, 157B, 167A, and 167B; STBs 162Aand 162B; TVs 163A and 163B; router 165; or PC 166 may automaticallytune from one channel to another throughout the day, according to theuser-specific schedule.

It should be noted that as used herein, the terms “configure” and“reconfigure” may refer to programming or loading a computing devicewith computer-readable/computer-executable instructions, code, and/orprograms, e.g., in a memory, which when executed by a processor of thecomputing device, may cause the computing device to perform variousfunctions. Such terms may also encompass providing variables, datavalues, tables, objects, or other data structures or the like which maycause a computer device executing computer-readable instructions, code,and/or programs to function differently depending upon the values of thevariables or other data structures that are provided. For example, oneor both of the STB/DVR 162A and STB/DVR 162B may host an operatingsystem for presenting a user interface via TVs 163A and 163B,respectively. In one example, the user interface may be controlled by auser via a remote control or other control devices which are capable ofproviding input signals to a STB/DVR. For example, mobile device 167Aand/or mobile device 167B may be equipped with an application to sendcontrol signals to STB/DVR 162A and/or STB/DVR 162B via an infraredtransmitter or transceiver, a transceiver for IEEE 802.11 basedcommunications (e.g., “Wi-Fi”), IEEE 802.15 based communications (e.g.,“Bluetooth”, “ZigBee”, etc.), and so forth, where STB/DVR 162A and/orSTB/DVR 162B are similarly equipped to receive such a signal. AlthoughSTB/DVR 162A and STB/DVR 162B are illustrated and described asintegrated devices with both STB and DVR functions, in other, further,and different examples, STB/DVR 162A and/or STB/DVR 162B may compriseseparate STB and DVR components.

Those skilled in the art will realize that the network 100 may beimplemented in a different form than that which is illustrated in FIG. 1, or may be expanded by including additional endpoint devices, accessnetworks, network elements, application servers, etc. without alteringthe scope of the present disclosure. For example, core network 110 isnot limited to an IMS network. Wireless access network 150 is notlimited to a UMTS/UTRAN configuration. Similarly, the present disclosureis not limited to an IP/MPLS network for VoIP telephony services, or anyparticular type of broadcast television network for providing televisionservices, and so forth.

To further aid in understanding the present disclosure, FIG. 2illustrates a flowchart of an example method 200 for constructing auser-specific schedule for use in providing a channel that ispersonalized for a user. In one example, the method 200 may be performedby the scheduling server 115 and/or additional devices illustrated inFIG. 1 . However, in other examples, the method 200 may be performed byanother device or devices (e.g., one or more application servers 114 orother device(s), such as the computing device 500 illustrated in FIG. 5). As such, any references in the discussion of the method 200 tocomponents of FIG. 1 are not intended to limit the means by which themethod 200 may be performed. For the sake of example, the method 200 isdescribed as being performed by a processing system including at leastone processor.

The method 200 begins in step 202. In step 204, the processing systemmay collect data about a user's viewing history. In one example, thedata may be collected over a network (e.g., a radio access network) fromat least one user endpoint device that is capable of receiving signalsand/or content from a television service provider. For instance, theuser endpoint device(s) may include a smart television, a set top box, astreaming media player, a microconsole (e.g., a dongle or similar devicethat plugs into a high definition multimedia interface (HDMI) port), asmart phone, a tablet computer, or the like which has access to viewinginformation.

The data about the user's viewing history may include information aboutwhat channels and/or programs the user has watched and when, and thedata may be collected over a period of time (e.g., a week, severalweeks, a month, etc.). For instance, the viewing history may indicateevery program that the user watched over the period of time, includingthe channel on which the program aired and the day and time at which theprogram aired. For instance, a data point in the viewing history mayindicate that the user watched a professional football game from 8:00 PMto 11:00 PM on a specific Monday night and on a specific cable sportschannel.

In one example, the viewing history may be specific to a givensubscription or account that is associated with multiple users (e.g., afamily who shares access to the user endpoint device(s)). In a furtherexample, however, the viewing history may identify users at a moregranular level. For instance, where the viewing history includesprograms that were aired via services that allow multiple users in thesame household to create their own individual profiles, the viewinghistory may include the profile associated with one or more data points(i.e., which profile was logged in when the program was watched), whereprofile information is available. Thus, the term “user” in the contextof the present disclosure may refer to a specific individual or to aspecific group of individuals associated with the same televisionservice provider account or subscription.

In one example, the viewing history may include playback events andrecording request events, in addition to programs that were watchedlive. In other words, where the user endpoint device(s) includes digitalvideo recorder (DVR) capabilities, the viewing history may includeprograms for which the user requested recording and recorded programsthat the user watched at a time subsequent to the program's originaltime of airing. In the case of recorded or played back programs, thedata point may include both the day and time at which the programoriginally aired (e.g., day and time that recording occurred) and theday and time at which the user watched the recording of the program.

In step 206, the processing system may detect a pattern in the user'sviewing history. In one example, one or more machine learning techniquesmay be used to detect the pattern. For instance, by analyzing theviewing history over the period of time, the processing system maydetect that the user watches a specific cable news channel from 7:00 AMto 8:00 AM on weekdays, a specific premium movie channel from 9:00 PM to11:00 PM on weekdays, and a specific cable sports channel on Sundaysfrom 1:00 PM to 7:00 PM.

In one example, the processing system may detect different patterns ofusage based on different days of the week, different times of day,and/or holiday periods. For instance, the user may frequently watch aspecific cable news network during the day on weekdays (e.g., 10:00 A.M.to 3:00 PM). However, on weekends and weekdays that are school holidays,the user may be more likely to watch a specific cable kids' channelduring the same window of time. Additionally, on weekday evenings (e.g.,7:00 PM to 10:00 PM), the user may frequently watch a specific cablesports channel.

In step 208, the processing system may construct a user-specificschedule for the user, based on the pattern detected in step 206. In oneexample, the user-specific schedule may comprise a schedule thatincludes, for at least one day (e.g., a day of the week, such as Monday,or a specific calendar day, such as Sep. 1, 2020), a plurality ofspecific windows of time during the day. FIG. 3 , for instance,illustrates a portion of an example user-specific schedule 300 that maybe created for an example user. The portion of the example user-specificschedule 300 covers from 8:00 AM to 5:00 PM for each day of the week(i.e., Monday to Sunday) and is arranged as a grid comprising aplurality of rows and a plurality of columns. In one example, the rowsof the example user-specific schedule may correspond to days of the week(e.g., as in the case where the reference numeral 302 indicates a rowassociated with Monday), while the columns of the example user-specificschedule 300 may correspond to specific windows of time (e.g., as in thecase where the reference numeral 304 indicates a column associated with8:00 AM to 9:00 AM). Cells of the grid (e.g., where the referencenumeral 306 indicates one cell) indicate time slots, where each timeslot is defined by the day and the window of time whose row and column,respectively, intersect at the corresponding cell.

The windows of time may be of equal duration (e.g., twenty four one-hourtime slots, forty eight thirty-minute time slots, etc.). However, inother examples, the durations of the plurality of windows of time mayvary (e.g., some windows of time may have one-hour durations, whileother windows of time may have thirty-minute durations).

As discussed above, each time slot may be associated with a specifictelevision channel. In FIG. 3 , each cell of the grid may contain dataindicating a channel that is associated with the time slot indicated bythe cell. For instance, in FIG. 3 , the channel Cable News A isassociated with the time slot of 8:00 AM to 9:00 AM on Mondays (as wellas with a plurality of other time slots).

In one example, the television channel associated with a given time slotmay comprise a television channel that the user has been observed tofrequently watch during the given time slot. For instance, theprocessing system may determine, based on the pattern detected in step206, that the channel most frequently watched by the user during thetime slot of 7:00 AM to 8:00 AM on Mondays is a specific cable newschannel. This specific cable news channel may then be associated withthe time slot of 7:00 AM to 8:00 AM on Mondays for the user's userspecific schedule. Thus, in one example, the channel associated with agiven time slot is the channel that was most frequently watched duringthe time slot over the period of time for which the user's viewinghistory data was collected.

As illustrated in FIG. 3 , some time slots of the user-specific schedulemay be empty after detecting patterns in step 206. An empty time slotmay indicate that the user does not typically watch any televisionchannels during that time slot, or that there is not enough informationamong the data collected in step 204 to make a determination about thetime slot. In one example, the processing system may makerecommendations in these empty time slots. For instance, the processingsystem may be able to infer, based on the user's viewing history, thatthe user watches multiple television shows of a particular genre (e.g.,sitcom, drama, reality, etc.) or multiple programs featuring aparticular actor or other personality (e.g., news anchor, game showhost, writer, sports team, etc.). The processing system may insert intoan empty time slot a channel that shows, during the empty time slot, aprogram that the user is expected to enjoy (e.g., a television show ofthe particular genre or that shares some other commonalities with theuser's viewing history). The program that the user is expected to enjoymay be identified based on metadata similarities between the program andother programs included in the user-specific schedule, or based on thefact that other users whose viewing histories share a thresholdsimilarity to the user (e.g., x percent of the same programs and/orchannels watched) also watch the program. In further examples, theprocessing system may insert advertising or sponsored material into theempty time slots. In further examples still, the processing system mayinsert user-generated content, such as the user's own photos or videos,into the empty time slots (where the user-generated content may beaccessed from another device in the user's home network). In furtherexamples still, the processing system may insert information related toa recent Internet search executed by the user (e.g., advertisements forproducts or services recently searched for) into the empty time slots.

In further examples still, the processing system may insert programs orchannels into an empty time slot that are excluded from or not normallypart of the user's subscription package. For instance, the user may notsubscribe to a premium movie channel, but the processing system mayassociate the premium movie channel with an empty time slot of theuser-specific schedule, thereby allowing the user limited access to thepremium movie channel only during the time slot with which the premiummovie channel is associated, and only when the personalized channel isactivated. In this case, the premium movie channel may beadvertisement-sponsored, meaning that advertisements for a particularentity which sponsors the limited access may also be shown during thetime slot.

In one example, the processing system may request user input beforefilling an empty time slot. For instance, the processing system mayrecommend a plurality of possible content items (e.g., programs,channels, advertisements, user-generated content) to fill the empty timeslot, and may ask the user to select one (or none) of the content itemsto fill the empty time slot. In another example, the user mayproactively request that a particular content item be inserted into anempty time slot, when reviewing the user-specific schedule. It shouldalso be noted that the user-specific schedule can be further modifiedbased on user request. For instance, the user may request that thechannels associated with one or more time slots be removed from theuser-specific schedule or replaced with different channels. The user mayalso request that one or more channels be added in particular time slotsof the user-specific schedule.

In step 210, the processing system may save the user-specific schedule.In one example, the user-specific schedule is stored in a database thatstores user-specific schedules for a plurality of television serviceprovider subscribers. In another example, the processing system maydeliver the user-specific schedule, over a network, to the endpointdevice(s) from which the viewing history data was collected in step 204.As discussed in further detail below in connection with FIG. 4 , theendpoint device(s) may use the user-specific schedule to deliver achannel that is personalized for the viewer.

The method may then return to step 204, and the processing system mayproceed as described above to continue collecting viewing history data.Thus, the processing system may iterate through steps 204-210 in orderto continuously monitor the user's viewing habits and may refine theuser-specific schedule accordingly. For instance, if the user's viewinghabits change, the processing system may detect new patterns in theviewing history data and may modify the user's user-specific schedule toreflect these new patterns.

In one example, continuous iteration of the method 200 does notnecessarily mean that every step of the method 200 is repeated with thesame frequency. For instance, viewing history data for the user may becollected on a continuous basis, or on a periodic basis with a firstfrequency (e.g., daily). However, the viewing history data may not beanalyzed for patterns until a sufficient amount of data has beencollected to yield meaningful results. Thus, pattern detection anduser-specific schedule construction may be performed on a periodic basiswith a second frequency that is less frequent that the first frequency(e.g., weekly).

In some cases, if there are multiple channels that can potentially beassociated with the same time slot (e.g., if the user does not watch onechannel exclusively during the time slot, or the user's viewing habitsduring the time slot are in the process of shifting), then theprocessing system may present the user with the option to choose whichchannel is associated with the time slot. Optionally, the channel thatis not associated with the time slot may still be recorded for laterviewing.

FIG. 4 illustrates a flowchart of an example method 400 for providing achannel that is personalized for a user. In one example, the method 400may be performed by one of mobile devices 157A, 157B, 167A, and 167B;STBs 162A and 162B; TVs 163A and 163B; router 165; or PC 166, and/or byadditional devices illustrated in FIG. 1 . However, in other examples,the method 400 may be performed by another device or devices (e.g., oneor more application servers 114 or other device(s), such as thecomputing device 500 illustrated in FIG.). As such, any references inthe discussion of the method 400 to components of FIG. 1 are notintended to limit the means by which the method 400 may be performed.For the sake of example, the method 400 is described as being performedby a processing system including at least one processor.

The method 400 begins in step 402. In step 404, the processing systemmay receive a signal from a user via an input device (e.g., any of theuser endpoint devices discussed above or an input component (e.g., a keypad, a remote controller, a camera for recognizing user gestures, amicrophone for recognizing verbal commands, and so on) that is part ofthe display device, smart TV, set-top box and so on) indicating that theuser wishes to launch a personalized television channel (e.g., apersonalized media stream) on a display device of the user. Forinstance, the user may send the signal by tuning the display device to aspecific channel (e.g., channel 1000). Alternatively, the user may sendthe signal by pressing a dedicated button or series of buttons on aremote control, or by selecting a menu option via a GUI of the displaydevice. Step 404 may be performed when the personalized televisionchannel is initially launched; however, once the personalized televisionchannel is launched, the method 400 may iterate through the remainingsteps of the method 400 one or more times, without any further requestsfrom the user to launch the personalized television channel.

In step 406, the processing system may determine a current time, which,if the personalized television channel is being initially launched,maybe the time at which the signal was received. For instance, theprocessing may be synchronized, over a network, to a remote clock. Whenthe signal is received, the processing system may determine the timebased on the synchronization to the remote clock. Alternatively, thedevice that generated the signal may include a timestamp in the signalitself, so that the processing system may simply extract the timestampfrom the signal.

In some examples, however, the personalized television channel may havealready been launched. In this case, the current time may not beassociated with any signal received from the user. The current time mayinstead be determined simply by determining the time based on thesynchronization to the remote clock. In one example, the processingsystem may periodically determine the synchronization to the remoteclock (e.g., every x minutes). However, in another example, theprocessing system may determine the synchronization to the remote clockaccording to a predefined schedule (e.g., every thirty minutes, on thehour and the half hour). In further examples, synchronization to theremote clock may be determined in response to a user command or inresponse to a predefined event (e.g., the user requesting that thepersonalized television channel be launched.

In step 408, the processing system may identify a first time slot of aschedule (e.g., a user-specific schedule) into which the current timefalls, where the schedule comprises a plurality of time slots includingthe first time slot, and where the schedule indicates a first channel ofa plurality of channels that the user has been observed to view duringthe first time slot.

As discussed above, a user-specific schedule may be constructed for theuser, based on patterns that have been detected in the user's viewinghabits. The user-specific schedule may include a schedule for each dayof the week (e.g., Sunday-Saturday) or for each calendar day (January1-December 31). Each day may be further broken down into a plurality oftime slots, where each time slot defines a window of time (e.g., thirtyminutes, one hour, etc.) during the day. At least one of these timeslots may be associated with a specific channel, where the specificchannel may be a channel that the user has been observed to regularlywatch during the associated time slot. For instance, if the user hasbeen observed to regularly watch a specific cable sports channel onMonday nights between 8:00 PM and 11:00 PM, then time slots of 8:00 PMto 9:00 PM, 9:00 PM to 10:00 PM, and 10:00 PM to 11:00 PM on a Monday ofthe user's user-specific schedule may be associated with the specificcable sports channel. Thus, if the current time is 8:10 PM on a Mondaynight, the processing system may determine that the time of 8:10 PMfalls into the time slot of 8:00 PM to 9:00 PM.

In step 410, the processing system may identify a first channel that isassociated in the schedule with the first time slot, wherein the firstchannel is one of a plurality of channels, and wherein viewing historydata for the user indicates that the user has viewed the first channelduring the first time slot in the past. As discussed above, theuser-specific schedule may associate one or more time slots withrespective channels. For instance, a time slot of 7:00 AM to 8:00 AM onweekdays may be associated with a specific cable news channel, whereas atime slot of 1:00 PM to 4:00 PM on Sundays may be associated with aspecific cable sports channel.

In step 412, the processing system may automatically tune the displaydevice (or a device connected to the display device which includes atuner) to the first channel in response to the signal received in step404. For instance, where the tuner is an advanced television systemscommittee (ATSC) tuner, the processing system may send a signal to thetuner of the display device that causes the tuner to select, from a bandof transmitted radio frequency (RF) signals, a specific RF frequencyassociated with the first channel. However, in further examples, theprocessing system may send a signal that controls selection of channelsby a quadrature amplitude modulation (QAM) tuner or a clear QAM tuner.In a further example still, the processing system may send a signal to asatellite tuner that causes the tuner to tune to a satellite transponderwith associated with a satellite television channel that corresponds tothe first channel. Although step 412 is described in the context oftuning a display device, it will be appreciated that the content fromthe first channel may be presented on the display device in othermanners that do not involve tuning the display device. For instance, thecontent on the first channel may simply be retrieved directly fromstorage in the network, without changing the tuning of the displaydevice.

In step 414, the processing system may receive a command from the uservia the input device that delays playback of the program currently beingaired on the first channel. For instance, the command may comprise acommand to pause the program that is currently being aired, so that theuser may answer the phone, use the restroom, get a snack, or the like.Alternatively, the command may comprise a command to rewind the programcurrently being aired, so that the user may re-watch a scene, replayaudio that was difficult to hear, or the like.

In step 416, the processing system may buffer a portion of a contentstream airing over a second channel of the plurality of channels inresponse to the command, where the second channel of the plurality ofchannels is associated in the schedule with a second time slot of theplurality of time slots. The second time slot may occur later in theschedule than the first time slot. The buffering of the content streamairing over the second channel may not begin until the second time slotbegins, or just before (e.g., x seconds before) the second time slotbegins. Furthermore, the buffering may occur while the display device isstill tuned to the first channel.

Buffering of the content stream airing over the second channel mayensure that a delay in playback on the first channel does not cause theuser to miss any of the program airing later on the second channel. Forinstance, a user may typically watch a first program on a first channel,and then watch a second program on a second channel immediately afterthe first program ends. Conventionally, if the user paused the firstprogram for ten minutes and then resumed playback of the first program,the user would not finish the first program until the second program hadalready started. Thus, when the user subsequently tuned to the secondchannel, he or she would have missed roughly the first ten minutes ofthe second program. However, buffering the content stream as describedin step 416 ensures that, even if the user pauses the first program, heor she will still be able to view the second program in the secondprogram's entirety.

Thus examples of the present disclosure allow a user to launch apersonalized television channel (e.g., personalized media stream) thatwill automatically tune the user's display device to different channelsat different times of day, based on learned viewing habits of the user.Thus, the user will not have to manually tune the display device eachtime he or she wishes to change the channel to view a program that he orshe regularly watches. For instance, the personalized channel mayautomatically tune the display device to the user's favorite cable newschannel for several hours in the morning, then automatically tune to achildren's programming channel in the afternoon, and then automaticallytune to a cable movie channel in the evening. Thus, the personalizedtelevision channel may present a continuous stream of content from aplurality of different television channels, where the content ispersonalized for the user based on the user's viewing habits. In someexamples, the user may also be able to share his or her personalizedtelevision channel with others, e.g., by providing a secure hyperlink, alimited duration login and password, or other mechanism that allowsanother user (e.g., a friend or family member) to view the user'spersonalized television channel.

After step 412 or step 416, the method 400 may return to step 406 andproceed as described above to determine the current time. Thus, for aslong as the personalized channel remains active (e.g., as long as theuser does not change the channel manually, turn off the television, orotherwise deactivate the personalized channel), the processing systemwill continue to automatically tune to the channels indicated in theuser-specific schedule during the designated time slots.

Although not expressly specified above, one or more steps of the method200 or the method 400 may include a storing, displaying and/oroutputting step as required for a particular application. In otherwords, any data, records, fields, and/or intermediate results discussedin the method can be stored, displayed and/or outputted to anotherdevice as required for a particular application. Furthermore,operations, steps, or blocks in FIG. 2 or FIG. 4 that recite adetermining operation or involve a decision do not necessarily requirethat both branches of the determining operation be practiced. In otherwords, one of the branches of the determining operation can be deemed asan optional step. Furthermore, operations, steps, or blocks of the abovedescribed method(s) can be combined, separated, and/or performed in adifferent order from that described above, without departing from theexamples of the present disclosure.

FIG. 5 depicts a high-level block diagram of a computing devicespecifically programmed to perform the functions described herein. Forexample, any one or more components or devices illustrated in FIG. 1 ordescribed in connection with the method 200 or the method 400 may beimplemented as the system 500. For instance, a scheduling server (suchas might be used to perform the method 200) or a user endpoint device(such as might be used to perform the method 400) could be implementedas illustrated in FIG. 5 .

As depicted in FIG. 5 , the system 500 comprises a hardware processorelement 502, a memory 504, a module 505 for providing televisionchannels that are personalized for specific users, and variousinput/output (I/O) devices 506.

The hardware processor 502 may comprise, for example, a microprocessor,a central processing unit (CPU), or the like. The memory 504 maycomprise, for example, random access memory (RAM), read only memory(ROM), a disk drive, an optical drive, a magnetic drive, and/or aUniversal Serial Bus (USB) drive. The module 505 for providingtelevision channels that are personalized for specific users may includecircuitry and/or logic for performing special purpose functions relatingto modeling a pool of media content and available transcoding resourcesand to optimization allocation of the available transcoding resourcesamong the pool of media content. The input/output devices 506 mayinclude, for example, a camera, a video camera, storage devices(including but not limited to, a tape drive, a floppy drive, a hard diskdrive or a compact disk drive), a receiver, a transmitter, a display, anoutput port, a television tuner card, or a user input device (such as akeyboard, a keypad, a mouse, and the like).

Although only one processor element is shown, it should be noted thatthe general-purpose computer may employ a plurality of processorelements. Furthermore, although only one general-purpose computer isshown in the Figure, if the method(s) as discussed above is implementedin a distributed or parallel manner for a particular illustrativeexample, i.e., the steps of the above method(s) or the entire method(s)are implemented across multiple or parallel general-purpose computers,then the general-purpose computer of this Figure is intended torepresent each of those multiple general-purpose computers. Furthermore,one or more hardware processors can be utilized in supporting avirtualized or shared computing environment. The virtualized computingenvironment may support one or more virtual machines representingcomputers, servers, or other computing devices. In such virtualizedvirtual machines, hardware components such as hardware processors andcomputer-readable storage devices may be virtualized or logicallyrepresented.

It should be noted that the present disclosure can be implemented insoftware and/or in a combination of software and hardware, e.g., usingapplication specific integrated circuits (ASIC), a programmable logicarray (PLA), including a field-programmable gate array (FPGA), or astate machine deployed on a hardware device, a general purpose computeror any other hardware equivalents, e.g., computer readable instructionspertaining to the method(s) discussed above can be used to configure ahardware processor to perform the steps, functions and/or operations ofthe above disclosed method(s). In one example, instructions and data forthe present module or process 505 for providing television channels thatare personalized for specific users (e.g., a software program comprisingcomputer-executable instructions) can be loaded into memory 504 andexecuted by hardware processor element 502 to implement the steps,functions or operations as discussed above in connection with theexample method 200 or the example method 400. Furthermore, when ahardware processor executes instructions to perform “operations,” thiscould include the hardware processor performing the operations directlyand/or facilitating, directing, or cooperating with another hardwaredevice or component (e.g., a co-processor and the like) to perform theoperations.

The processor executing the computer readable or software instructionsrelating to the above described method(s) can be perceived as aprogrammed processor or a specialized processor. As such, the presentmodule 505 for providing television channels that are personalized forspecific users (including associated data structures) of the presentdisclosure can be stored on a tangible or physical (broadlynon-transitory) computer-readable storage device or medium, e.g.,volatile memory, non-volatile memory, ROM memory, RAM memory, magneticor optical drive, device or diskette and the like. More specifically,the computer-readable storage device may comprise any physical devicesthat provide the ability to store information such as data and/orinstructions to be accessed by a processor or a computing device such asa computer or an application server.

While various examples have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred example shouldnot be limited by any of the above-described examples, but should bedefined only in accordance with the following claims and theirequivalents.

What is claimed is:
 1. A method comprising: identifying, by a processing system including at least one processor, a first time slot of a schedule into which a current time falls, wherein the schedule comprises a plurality of time slots including the first time slot; identifying, by the processing system, a first channel that is associated in the schedule with the first time slot, wherein the first channel is one of a plurality of channels, and wherein viewing history data for a user indicates that the user has viewed the first channel during the first time slot in the past; automatically tuning, by the processing system, a display device of the user to the first channel in response to the identifying; receiving, by the processing system and subsequent to the automatically tuning, a command from the user via an input device to pause a program playing on the first channel; identifying, by the processing system, a second channel associated in the schedule with a second time slot of the plurality of time slots, wherein the second time slot occurs later in time than the first time slot; buffering, by the processing system, a portion of a program being shown on the second channel during the second time slot, in response to the command and when the second time slot begins, wherein the buffering begins while the display device is still tuned to the first channel, and wherein the portion having a duration determined based on a duration of a pause initiated by the command, to ensure the program on the second channel can be seen in its entirety; and presenting, by the processing system, to the display device the portion of the program on the second channel that is buffered after an end of the program on the first channel and without altering the schedule.
 2. The method of claim 1, wherein the schedule further associates a plurality of other channels of the plurality of channels with a plurality of other time slots of the plurality of time slots.
 3. The method of claim 1, further comprising: detecting, by the processing system, when a new current time falls into a third time slot of the plurality of time slots, wherein the third time slot occurs subsequent to the first time slot; and automatically tuning, by the processing system, the display device of the user to a third channel of the plurality of channels that is associated in the schedule with the third time slot, when the new current time is detected to fall into the third time slot.
 4. The method of claim 1, wherein the processing system is part of the display device.
 5. The method of claim 4, wherein the display device is a smart television.
 6. The method of claim 1, wherein the processing system is part of a device that receives signals over a communications network and extracts television content from the signals for display on the display device.
 7. The method of claim 6, wherein the device is at least one of: a set top box, a streaming media player, or a microconsole.
 8. The method of claim 1, wherein the processing system is part of a server that communicates with the display device over a communications network.
 9. The method of claim 8, further comprising, prior to the identifying of the first time slot: collecting, by the processing system, the viewing history data of the user, wherein the viewing history data includes a subset of the plurality of channels, including the first channel, that the user has been observed to have watched on the display device in the past and times in the past at which the user was observed to have watched the subset of the plurality of channels; detecting, by the processing system, a pattern in the viewing history data based on an analysis of the viewing history data; and constructing, by the processing system, the schedule based on the pattern.
 10. The method of claim 9, wherein the constructing comprises: associating, by the processing system, the first channel with the first time slot when the viewing history data shows at least a threshold number of occurrences of the user watching the first channel during the first time slot.
 11. The method of claim 10, wherein the constructing further comprises: associating, by the processing system, an automatically selected channel of the plurality of channels with a third time slot of the plurality of time slots, when the viewing history data shows fewer than the threshold number of occurrences of the user watching a same channel during the third time slot.
 12. The method of claim 11, wherein the automatically selected channel comprises a channel that is offered by a programming provider but is excluded from a channel package offered by the programming provider to which the user subscribes.
 13. The method of claim 11, wherein the automatically selected channel shows a program during the third time slot that is observed to share a commonality with the program shown on the first channel during the first time slot.
 14. The method of claim 13, wherein the commonality includes at least one of: a common genre, a common actor, a common writer, or a common sports team.
 15. The method of claim 9, wherein the constructing comprises: determining, by the processing system based on the viewing history data, that the user has watched both the first channel and a third channel of the plurality of channels during the first time slot; presenting, by the processing system, the user with a choice between the first channel and the third channel; and receiving, by the processing system in response to the presenting, a selection of the first channel from the user.
 16. The method of claim 1, further comprising: delivering, by the processing system to the display device, a photograph belonging to the user for display during at least one time slot of the plurality of time slots.
 17. The method of claim 1, wherein the presenting comprises: automatically tuning, by the processing system, the display device to the second channel when the end of the program playing on the first channel is reached, wherein the end of the program playing on the first channel is reached during the second time slot; and delivering, by the processing system, the portion of the program being shown on the second channel during the second time slot to the display device from the buffer, so that the command from the user to pause the program playing on the first channel does not cause the user to miss a beginning of the program being shown on the second channel.
 18. The method of claim 1, further comprising: delivering, by the processing system to the display device, information related to an internet search executed by the user during at least one time slot of the plurality of time slots.
 19. A device comprising: a processing system including at least one processor; and a computer-readable medium storing instructions which, when executed by the processing system, cause the processing system to perform operations, the operations comprising: identifying a first time slot of a schedule into which a current time falls, wherein the schedule comprises a plurality of time slots including the first time slot; identifying a first channel that is associated in the schedule with the first time slot, wherein the first channel is one of a plurality of channels, and wherein viewing history data for a user indicates that the user has viewed the first channel during the first time slot in the past; automatically tuning a display device of the user to the first channel in response to the identifying; receiving, subsequent to the automatically tuning, a command via an input device from the user to pause a program playing on the first channel; identifying a second channel associated in the schedule with a second time slot of the plurality of time slots, wherein the second time slot occurs later in time than the first time slot; buffering a portion of a program being shown on the second channel during the second time slot, in response to the command and when the second time slot begins, wherein the buffering begins while the display device is still tuned to the first channel, and wherein the portion having a duration determined based on a duration of a pause initiated by the command, to ensure the program on the second channel can be seen in its entirety; and presenting to the display device the portion of the program on the second channel that is buffered after an end of the program on the first channel and without altering the schedule.
 20. A non-transitory computer-readable medium storing instructions which, when executed by a processing system including at least one processor, cause the processing system to perform operations, the operations comprising: identifying a first time slot of a schedule into which a current time falls, wherein the schedule comprises a plurality of time slots including the first time slot; identifying a first channel that is associated in the schedule with the first time slot, wherein the first channel is one of a plurality of channels, and wherein viewing history data for a user indicates that the user has viewed the first channel during the first time slot in the past; automatically tuning a display device of the user to the first channel in response to the identifying; receiving, subsequent to the automatically tuning, a command from the user via an input device to pause a program playing on the first channel; identifying a second channel associated in the schedule with a second time slot of the plurality of time slots, wherein the second time slot occurs later in time than the first time slot; buffering a portion of a program being shown on the second channel during the second time slot, in response to the command and when the second time slot begins, wherein the buffering begins while the display device is still tuned to the first channel, and wherein the portion having a duration determined based on a duration of a pause initiated by the command, to ensure the program on the second channel can be seen in its entirety; and presenting to the display device the portion of the program on the second channel that is buffered after an end of the program on the first channel and without altering the schedule. 